"""
服务器端
"""
import threading

"""
1 创建一个socket对象
2 绑定服务器端的一个ip和port，进行监听
3 开始监听
4 接收来自客户端的连接
"""
import socket

ip = "127.0.0.1"
port = 8888

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # ip版本 通信协议
s.bind((ip, port))  # port 要求 1024到65535之间
s.listen(100)  # 最多可以同时接收100个客户端的请求
print(f"我是服务器，我已经准备好了，我的ip是{ip},端口是{port}")

def target_link(link):

    msg = link.recv(1024).decode("utf-8")
    c_name = msg.split(":")[-1]
    print(f"新的连接来自{c_name}")
    # 给客户端发送欢迎信息
    wel_msg = f"欢迎你{c_name}"
    link.send(wel_msg.encode("utf-8"))
    # 开始循环接收客户都发送过来的信息
    try:
        while True:
            msg = link.recv(1024).decode("utf-8")
            if msg == "q":
                break
            print(f"{c_name}说:{msg}")
    except Exception:
        pass
    # 关闭本次连接
    link.close()
    print(f"{c_name}的连接已经被关闭！")

while True:
    link = s.accept()[0]  # link代表本次连接
    t = threading.Thread(target=target_link,args=(link,))
    t.start()